# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

if CONFIG['MOZ_WEBRTC']:
    EXPORTS += [
        'CamerasChild.h',
        'CamerasParent.h',
        'LoadManager.h',
        'LoadManagerFactory.h',
        'LoadMonitor.h',
    ]
    SOURCES += [
        'CamerasChild.cpp',
        'CamerasParent.cpp',
        'LoadManager.cpp',
        'LoadManagerFactory.cpp',
        'LoadMonitor.cpp',
        'ShmemPool.cpp',
    ]
    LOCAL_INCLUDES += [
        '/media/webrtc/signaling',
        '/media/webrtc/trunk',
    ]

if CONFIG['OS_TARGET'] == 'WINNT':
    DEFINES['WEBRTC_WIN'] = True
else:
    DEFINES['WEBRTC_POSIX'] = True


if CONFIG['OS_TARGET'] == 'Android':
    EXPORTS += [
        'OpenSLESProvider.h'
    ]
    SOURCES += [
        'OpenSLESProvider.cpp',
    ]

if CONFIG['_MSC_VER']:
    DEFINES['__PRETTY_FUNCTION__'] = '__FUNCSIG__'

    # This is intended as a temporary workaround to enable building with VS2015.
    # media\webrtc\trunk\webrtc/base/criticalsection.h(59): warning C4312:
    # 'reinterpret_cast': conversion from 'DWORD' to 'HANDLE' of greater size
    CXXFLAGS += ['-wd4312']

EXPORTS.mozilla += ['ShmemPool.h',]

EXPORTS.mozilla.media += ['CamerasTypes.h',
                          'DeviceChangeCallback.h',
                          'MediaChild.h',
                          'MediaParent.h',
                          'MediaSystemResourceClient.h',
                          'MediaSystemResourceManager.h',
                          'MediaSystemResourceManagerChild.h',
                          'MediaSystemResourceManagerParent.h',
                          'MediaSystemResourceMessageUtils.h',
                          'MediaSystemResourceService.h',
                          'MediaSystemResourceTypes.h',
                          'MediaTaskUtils.h',
                          'MediaUtils.h',
]

SOURCES += [
    'MediaChild.cpp',
    'MediaParent.cpp',
    'MediaSystemResourceClient.cpp',
    'MediaSystemResourceManager.cpp',
    'MediaSystemResourceManagerChild.cpp',
    'MediaSystemResourceManagerParent.cpp',
    'MediaSystemResourceService.cpp',
    'MediaUtils.cpp',
]

IPDL_SOURCES += [
    'PCameras.ipdl',
    'PMedia.ipdl',
    'PMediaSystemResourceManager.ipdl',
]

# /dom/base needed for nsGlobalWindow.h in MediaChild.cpp
LOCAL_INCLUDES += [
    '/dom/base',
]

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'

if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-Wno-error=shadow']
